#ifndef __FLATPAKLIST__H__
#define __FLATPAKLIST__H__

#include "FlatpakBase.h"

class Flatpak::List : public Flatpak::Base
{
    public:
        initCommand(List, "list");
        List(const List &) = default;
        List(List &&) = default;
        List &operator=(const List &) = default;
        List &operator=(List &&) = default;

        // --user/--system
        UserSystem(List)
        // --runtime/--app
        RuntimeApp(List)
        // --arch=
        Archs(List)

        // --app-runtime=
        Runtime(List)

        // --columns=
        Columns(List,name)
        Columns(List,description)
        Columns(List,application)
        Columns(List,version)
        Columns(List,branch)
        Columns(List,arch)
        Columns(List,runtime)
        Columns(List,origin)
        Columns(List,installation)
        Columns(List,ref)
        Columns(List,active)
        Columns(List,latest)
        Columns(List,size)
        Columns(List,options)
        Columns(List,all)
        Columns(List,help)

        // --ostree-verbose
        OstreeVerbose(List)

        QString run() {
            Base::run();
            return FlatpakCommand::RunCommand(command, args);
        }

    private:

};

#endif  //!__FLATPAKLIST__H__

/****************************************************************
Usage:
  flatpak list [OPTION…]  - List installed apps and/or runtimes

Help Options:
  -h, --help                Show help options

Application Options:
  --user                    Work on the user installation
  --system                  Work on the system-wide installation (default)
  --installation=NAME       Work on a non-default system-wide installation
  -d, --show-details        Show extra information
  --runtime                 List installed runtimes
  --app                     List installed applications
  --arch=ARCH               Arch to show
  -a, --all                 List all refs (including locale/debug)
  --app-runtime=RUNTIME     List all applications using RUNTIME
  --columns=FIELD,…         What information to show
  -v, --verbose             Show debug information, -vv for more detail
  --ostree-verbose          Show OSTree debug information

Available columns:
  name             Show the name
  description      Show the description
  application      Show the application ID
  version          Show the version
  branch           Show the branch
  arch             Show the architecture
  runtime          Show the used runtime
  origin           Show the origin remote
  installation     Show the installation
  ref              Show the ref
  active           Show the active commit
  latest           Show the latest commit
  size             Show the installed size
  options          Show options
  all              Show all columns
  help             Show available columns

Append :s[tart], :m[iddle], :e[nd] or :f[ull] to change ellipsization
****************************************************************/